home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 3 / BBS in a box - Trilogy III.iso / Files / MacTechNotes / Platforms & Tools / Stand-Alone Code Folder / SAGlobalsƒ / SAGlobals.inc1.p < prev    next >
Encoding:
Text File  |  1990-07-15  |  1.1 KB  |  55 lines  |  [TEXT/MPS ]

  1. IMPLEMENTATION
  2.  
  3.     CONST
  4.         kAppParmsSize = 32;
  5.  
  6.     FUNCTION A5Size : Longint;
  7.         C;    EXTERNAL;    { in MPW's Runtime.o }
  8.         
  9.     PROCEDURE A5Init (myA5: Ptr);
  10.         C;    EXTERNAL;    { in MPW's Runtime.o }
  11.     
  12.     PROCEDURE MakeA5World (VAR A5Ref: A5RefType);
  13.     BEGIN
  14.         A5Ref := NewHandle(A5Size);
  15.         { The calling routine must check A5Ref for NIL! }
  16.         IF A5Ref <> NIL THEN
  17.             BEGIN
  18.                 HLock(A5Ref);
  19.                 A5Init(Ptr(Longint(A5Ref^) + A5Size - kAppParmsSize));
  20.                 HUnlock(A5Ref);
  21.             END;
  22.     END;
  23.         
  24.     FUNCTION SetA5World (A5Ref: A5RefType) : Longint;
  25.     BEGIN
  26.         HLock(A5Ref);
  27.         SetA5World := SetA5(Longint(A5Ref^) + A5Size - kAppParmsSize);
  28.     END;
  29.         
  30.     PROCEDURE RestoreA5World (oldA5: Longint; A5Ref: A5RefType);
  31.     BEGIN
  32.         IF Boolean (SetA5(oldA5)) THEN;    { side effect only }
  33.         HUnlock(A5Ref);
  34.     END;
  35.         
  36.     PROCEDURE DisposeA5World (A5Ref: A5RefType);
  37.     BEGIN
  38.         DisposHandle(A5Ref);
  39.     END;
  40.     
  41.     FUNCTION OpenA5World (VAR A5Ref: A5RefType) : Longint;
  42.     BEGIN
  43.         MakeA5World(A5Ref);
  44.         IF A5Ref <> NIL THEN
  45.             OpenA5World := SetA5World(A5Ref)
  46.         ELSE
  47.             OpenA5World := 0;
  48.     END;
  49.     
  50.     PROCEDURE CloseA5World (oldA5: Longint; A5Ref: A5RefType);
  51.     BEGIN
  52.         RestoreA5World(oldA5, A5Ref);
  53.         DisposeA5World(A5Ref);
  54.     END;
  55.